«# -*- coding: utf-8 -*-



class ReadWorkbook:
    from sqlalchemy import create_engine, MetaData, Column, Table, ForeignKey, Integer, String, func
    from sqlalchemy.sql import select
    # import sqlite3
    from xlrd import open_workbook,cellname
    book = open_workbook('cna131fresultados.xls')
    sheet = book.sheet_by_index(0)
    print book.encoding
    print sheet.name
    print sheet.nrows
    print sheet.ncols
    

    def encodeValue(v):
        try:
            return v.encode('utf-8', 'ignore')
        except AttributeError:
            return v
        
    #for row_index in range(sheet.nrows):
        #for col_index in range(sheet.ncols):
            #print cellname(row_index,col_index),'-',
            #cellvalue = sheet.cell(row_index,col_index).value
            #print encodeValue(cellvalue)
    exceldata = []
    for row_index in range(sheet.nrows):
        lista = []
        for col_index in range(sheet.ncols):
            #print cellname(row_index,col_index),'-',
            cellvalue = sheet.cell(row_index,col_index).value
            #print encodeValue(cellvalue)
            lista.append(cellvalue)
        exceldata.append(lista)

    #print exceldata

    engine = create_engine('sqlite:///cna131fresultados-alchemy.db',
                       echo=True)

    metadata = MetaData(bind=engine)

    resultadosTable = Table('resultados', metadata,
                    Column('cod_instituicao', Integer),
                    Column('cod_curso', String),
                    Column('nome_instituicao', String),
                    Column('nome_curso', String),
                    Column('grau', String),
                    Column('vagas_iniciais', Integer),
                    Column('colocados', Integer),
                    Column('notas', Integer),
                    Column('vagas_sobra', Integer),
                    )
    resultadosTable.drop(engine, checkfirst=True)
    metadata.create_all()
    
    ins_result = resultadosTable.insert()
    conn = engine.connect()

    for row in exceldata:
        # new_result = ins_result.values(cod_instituicao=3200, cod_curso=10, nome_instituicao="escola xpto", nome_curso="eng. xpto", grau="L10", vagas_iniciais=10, colocados=5, notas=15, vagas_sobra=5)
        # conn.execute(new_result)
        conn.execute('INSERT INTO resultados VALUES (?,?,?,?,?,?,?,?,?)', row)
    conn.close()


    # sel_result = select([resultados], resultados.c.cod_curso).execute()
    
    colocadosT = select([resultadosTable.c.cod_instituicao, resultadosTable.c.colocados], resultadosTable.c.cod_instituicao).group_by(resultadosTable.c.cod_instituicao).execute()


    for x in colocadosT.fetchall():
        print x


    # sel_result = select([resultados], resultados.c.cod_curso).execute()

    # for x in sel_result.fetchall():
    #      print x
   



    # conn = sqlite3.connect('cna131fresultados.db')
    # conn.text_factory = str
    # c = conn.cursor()
    
    # c.execute('DROP TABLE IF EXISTS resultados')
    # c.execute('''CREATE TABLE resultados
    #          (cod_instituicao real, cod_curso text, nome_instituicao text, nome_curso text, grau text, vagas_iniciais real, colocados real, notas real, vagas_sobra real)''')
    
    # #print sheet.ncols
    # for row in exceldata:
    #     c.execute('INSERT INTO resultados VALUES (?,?,?,?,?,?,?,?,?)', row)
    # conn.commit()


    # c.execute('SELECT * FROM resultados ORDER BY cod_curso')
    # for x in c.fetchall():
    #     print x
    # conn.close()











